Metadata

We need a csv or excel table with metadata that is also reflected in the filename parts.

library(DT)
#-------------------------------------------------
# Read filenames from directory 
dirinput <- 'C:/Users/GFraga/Documents/GitHub/CRS_AFFORD/AFFORD_THUMBS/Spring/'
fnames <- dir(dirinput)

# Create metadata table
metadata <- as.data.frame(fnames[grepl('^JP*.*.jpg$',fnames)])
colnames(metadata) <- 'file'

# split name parts to fill metadata columns
parts <- strsplit(metadata$file,'-')
basenames <- sapply(strsplit(metadata$file,'.tif'),'[[',1)
metadata$specID <- sapply(strsplit(basenames,'-'),'[[',1)
metadata$status <- sapply(strsplit(basenames,'-'),'[[',2)
metadata$scan <- sapply(strsplit(basenames,'-'),'[[',3)
metadata$seq <- sapply(strsplit(basenames,'_'),'[[',2)
metadata$rec <- sapply(strsplit(basenames,'_rec'),'[[',2)

Compact viewer

# Dynamic table -------------------------------------------------

# add html component to column with file namens
metadata$link <- metadata$file
metadata$link <- paste0('<img src=\'Spring/', metadata$link, '\' height=\'50\' witdth = \'50\'></img>')

# Render table (ref https://www.rdocumentation.org/packages/DT/versions/0.28/topics/datatable)
 datatable(
    metadata, filter = "top",
    rownames=FALSE, width="100%",
    class='compact cell-border hover', # CSS classes https://datatables.net/manual/styling/classes
    extensions=c('Buttons','Select','SearchPanes'),
    selection = 'none',
    options=list(dom='Bfrtip', buttons=c('copy','csv','excel','pdf')),
    escape=FALSE
  )

Viewer with Filter panes

# Dynamic table -------------------------------------------------

# add html component to column with file namens
metadata$link <- metadata$file
metadata$link <- paste0('<img src=\'Spring/', metadata$link, '\' height=\'50\' witdth = \'50\'></img>')
 

  datatable(
    metadata, filter = "top",
    rownames=FALSE, width="100%", 
    class='compact cell-border hover', # CSS classes https://datatables.net/manual/styling/classes
    extensions=c('Buttons','Select','SearchPanes'),
    selection = 'none',
    escape = FALSE,
    options = list(dom = 'Pfrtip', buttons=c('copy','csv','excel','pdf'),
    columnDefs = list(list(
        searchPanes = list(show = FALSE), targets = 1
    ))),
  )

Filenames

Scheme

<specID>_<status>_<scan><(desc)>_<(version)>_<rec>

Labels

specID: str + num specimen ID (JP01)

status: str specimen status (dead | invivo)

scan: num + str number of scans (1scan)

desc: OPTIONAL str + num additional description of scans

version: OPTIONAL str + num specifies version if multiple (v1)

seq: num sequence number (053)

rec: str + num recording identifier (rec00182)

Legend:

<field> required field

<(field)> Optional field

Issues

  • Naming: specID includes country, relable it to <coun><specID> ?